<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ArNetworking: ArClientHandlerRobotUpdate Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ArNetworking
   &#160;<span id="projectnumber">dev20161014</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArClientHandlerRobotUpdate.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArClientHandlerRobotUpdate-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArClientHandlerRobotUpdate Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Receives robot "update" responses from server and stores them.  
 <a href="classArClientHandlerRobotUpdate.html#details">More...</a></p>

<p><code>#include &lt;ArClientHandlerRobotUpdate.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5bf1111698c6b3888a94ea903163bef0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a5bf1111698c6b3888a94ea903163bef0">addModeChangedCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *cb)</td></tr>
<tr class="memdesc:a5bf1111698c6b3888a94ea903163bef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a callback function which is invoked if a new, different status string is received from the server.  <a href="#a5bf1111698c6b3888a94ea903163bef0">More...</a><br /></td></tr>
<tr class="separator:a5bf1111698c6b3888a94ea903163bef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f058fc89de776228734b773d4f04bd4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a3f058fc89de776228734b773d4f04bd4">addStatusChangedCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor2.html">ArFunctor2</a>&lt; const char *, const char * &gt; *cb)</td></tr>
<tr class="memdesc:a3f058fc89de776228734b773d4f04bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a callback function which is invoked if a new, different status string is received from the server.  <a href="#a3f058fc89de776228734b773d4f04bd4">More...</a><br /></td></tr>
<tr class="separator:a3f058fc89de776228734b773d4f04bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71c1138b62468ada65ab9b966a6cdba9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a71c1138b62468ada65ab9b966a6cdba9">addUpdateCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> &gt; *cb)</td></tr>
<tr class="memdesc:a71c1138b62468ada65ab9b966a6cdba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a callback function which is called with robot data received in every update from the server.  <a href="#a71c1138b62468ada65ab9b966a6cdba9">More...</a><br /></td></tr>
<tr class="separator:a71c1138b62468ada65ab9b966a6cdba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30eeb57403200c9f077a72f266947c88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate</a> (<a class="el" href="classArClientBase.html">ArClientBase</a> *<a class="el" href="configClientToServer_8cpp.html#afe594bfb305907ae82f259409cc214cb">client</a>)</td></tr>
<tr class="separator:a30eeb57403200c9f077a72f266947c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5a2424b2d503498d15181ec894a6837"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode</a> ()</td></tr>
<tr class="memdesc:ab5a2424b2d503498d15181ec894a6837"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to mode string most recently received from server.  <a href="#ab5a2424b2d503498d15181ec894a6837">More...</a><br /></td></tr>
<tr class="separator:ab5a2424b2d503498d15181ec894a6837"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c2641bf77077aceb4e60988b41b4653"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a7c2641bf77077aceb4e60988b41b4653">getStatus</a> ()</td></tr>
<tr class="memdesc:a7c2641bf77077aceb4e60988b41b4653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to status string most recently received from server.  <a href="#a7c2641bf77077aceb4e60988b41b4653">More...</a><br /></td></tr>
<tr class="separator:a7c2641bf77077aceb4e60988b41b4653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a7cf7df29cbfe92c0e5e590705f4e68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock</a> ()</td></tr>
<tr class="memdesc:a7a7cf7df29cbfe92c0e5e590705f4e68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock mutex used to protect robot data, status and mode while new data is stored from an update from the server, in the ArNetwork client thread.  <a href="#a7a7cf7df29cbfe92c0e5e590705f4e68">More...</a><br /></td></tr>
<tr class="separator:a7a7cf7df29cbfe92c0e5e590705f4e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaeffce973daa342519c3e1ba24a3497"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#afaeffce973daa342519c3e1ba24a3497">remModeChangedCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *cb)</td></tr>
<tr class="memdesc:afaeffce973daa342519c3e1ba24a3497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove status-changed callback function.  <a href="#afaeffce973daa342519c3e1ba24a3497">More...</a><br /></td></tr>
<tr class="separator:afaeffce973daa342519c3e1ba24a3497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaeefbbc9c5d045d071a987a39481e0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#abaeefbbc9c5d045d071a987a39481e0a">remStatusChangedCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor2.html">ArFunctor2</a>&lt; const char *, const char * &gt; *cb)</td></tr>
<tr class="memdesc:abaeefbbc9c5d045d071a987a39481e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove status-changed callback function.  <a href="#abaeefbbc9c5d045d071a987a39481e0a">More...</a><br /></td></tr>
<tr class="separator:abaeefbbc9c5d045d071a987a39481e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa87ed6e789dd012f5aeb8f042c48baf3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#aa87ed6e789dd012f5aeb8f042c48baf3">remUpdateCB</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> &gt; *cb)</td></tr>
<tr class="memdesc:aa87ed6e789dd012f5aeb8f042c48baf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove data update callback function.  <a href="#aa87ed6e789dd012f5aeb8f042c48baf3">More...</a><br /></td></tr>
<tr class="separator:aa87ed6e789dd012f5aeb8f042c48baf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308497682f0b294307f76b3738509c48"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates</a> (int freq=100)</td></tr>
<tr class="memdesc:a308497682f0b294307f76b3738509c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request updates at the given rate.  <a href="#a308497682f0b294307f76b3738509c48">More...</a><br /></td></tr>
<tr class="separator:a308497682f0b294307f76b3738509c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7d541b0fcc9ac7fe3bed90f240a0d5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates</a> ()</td></tr>
<tr class="memdesc:ad7d541b0fcc9ac7fe3bed90f240a0d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop receiving updates.  <a href="#ad7d541b0fcc9ac7fe3bed90f240a0d5f">More...</a><br /></td></tr>
<tr class="separator:ad7d541b0fcc9ac7fe3bed90f240a0d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2e2dbf3cd1fdc44cc93b4a37a1e339"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock</a> ()</td></tr>
<tr class="memdesc:a2b2e2dbf3cd1fdc44cc93b4a37a1e339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock mutex used to protect robot data, status and mode, which was locked with <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a>.  <a href="#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">More...</a><br /></td></tr>
<tr class="separator:a2b2e2dbf3cd1fdc44cc93b4a37a1e339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae861fa0542620624287b4c2323607a5e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode</a> (const char *mode, long timeout)</td></tr>
<tr class="separator:ae861fa0542620624287b4c2323607a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a144ae2b9f9b25c861fc4f3d86d9a4934"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus</a> (const char *status, long timeout)</td></tr>
<tr class="separator:a144ae2b9f9b25c861fc4f3d86d9a4934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a457ce90ec73a812f114f207719e50c07"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a457ce90ec73a812f114f207719e50c07">~ArClientHandlerRobotUpdate</a> ()</td></tr>
<tr class="separator:a457ce90ec73a812f114f207719e50c07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a20403933a7cde91876995b7737feeaf3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a20403933a7cde91876995b7737feeaf3">getData</a> ()</td></tr>
<tr class="memdesc:a20403933a7cde91876995b7737feeaf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a copy of robot position, status, etc.  <a href="#a20403933a7cde91876995b7737feeaf3">More...</a><br /></td></tr>
<tr class="separator:a20403933a7cde91876995b7737feeaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8bddfe447a9e409085a6f679d7e961a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#aa8bddfe447a9e409085a6f679d7e961a">getX</a> ()</td></tr>
<tr class="separator:aa8bddfe447a9e409085a6f679d7e961a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45972dbed0a0a76d41c65ec3ed8174ec"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a45972dbed0a0a76d41c65ec3ed8174ec">getY</a> ()</td></tr>
<tr class="separator:a45972dbed0a0a76d41c65ec3ed8174ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a9df940976c360a684f48b613b7d93"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#af4a9df940976c360a684f48b613b7d93">getTh</a> ()</td></tr>
<tr class="separator:af4a9df940976c360a684f48b613b7d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abffb67d38870da2cb80643d33da5454e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#abffb67d38870da2cb80643d33da5454e">getPose</a> ()</td></tr>
<tr class="separator:abffb67d38870da2cb80643d33da5454e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e1e34e06e0daad656186d24081ac05b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a5e1e34e06e0daad656186d24081ac05b">getVel</a> ()</td></tr>
<tr class="separator:a5e1e34e06e0daad656186d24081ac05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13a63841f9e9188e2ab1bf6fe0ed5a3c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a13a63841f9e9188e2ab1bf6fe0ed5a3c">getRotVel</a> ()</td></tr>
<tr class="separator:a13a63841f9e9188e2ab1bf6fe0ed5a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcdee791aeed3e74ff88bbca5a1cb495"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#abcdee791aeed3e74ff88bbca5a1cb495">getLatVel</a> ()</td></tr>
<tr class="separator:abcdee791aeed3e74ff88bbca5a1cb495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47609e30e0438eaf17f07e5ffac9d732"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a47609e30e0438eaf17f07e5ffac9d732">haveStateOfCharge</a> ()</td></tr>
<tr class="memdesc:a47609e30e0438eaf17f07e5ffac9d732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether battery status was provided as state of charge or not.  <a href="#a47609e30e0438eaf17f07e5ffac9d732">More...</a><br /></td></tr>
<tr class="separator:a47609e30e0438eaf17f07e5ffac9d732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6316887244cfa172f21c499bdc96f2a5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a6316887244cfa172f21c499bdc96f2a5">getStateOfCharge</a> ()</td></tr>
<tr class="separator:a6316887244cfa172f21c499bdc96f2a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8be85a05eccb0749500b437179bf28d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ae8be85a05eccb0749500b437179bf28d">haveVoltage</a> ()</td></tr>
<tr class="memdesc:ae8be85a05eccb0749500b437179bf28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether battery status was provided as voltage or not.  <a href="#ae8be85a05eccb0749500b437179bf28d">More...</a><br /></td></tr>
<tr class="separator:ae8be85a05eccb0749500b437179bf28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42a17bf8772a89f2a2c3f64ec823e927"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a42a17bf8772a89f2a2c3f64ec823e927">getVoltage</a> ()</td></tr>
<tr class="separator:a42a17bf8772a89f2a2c3f64ec823e927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad725f0742412edf8bfd8878ac97693bd"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ad725f0742412edf8bfd8878ac97693bd">getTemperature</a> ()</td></tr>
<tr class="separator:ad725f0742412edf8bfd8878ac97693bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab65a806c7b795a757b4a52023ea6a073"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *pkt)</td></tr>
<tr class="separator:ab65a806c7b795a757b4a52023ea6a073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7982c185979be0859838967214c580a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *pkt)</td></tr>
<tr class="separator:ad7982c185979be0859838967214c580a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c0c5b156184224b7fb061d2d0a87750"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *pkt)</td></tr>
<tr class="separator:a3c0c5b156184224b7fb061d2d0a87750"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae531c4a228baa213ca99eb7532d96102"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ae531c4a228baa213ca99eb7532d96102">parseData</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *pkt)</td></tr>
<tr class="separator:ae531c4a228baa213ca99eb7532d96102"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:afeea412ae5be9e597dcb58138ca13069"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArClientBase.html">ArClientBase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a></td></tr>
<tr class="separator:afeea412ae5be9e597dcb58138ca13069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26449de81d04d0771d987e34dc368221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a></td></tr>
<tr class="separator:a26449de81d04d0771d987e34dc368221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c5acb83c730ce966f89f08d166bf57"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ac0c5acb83c730ce966f89f08d166bf57">myHandleUpdateNumbersCB</a></td></tr>
<tr class="separator:ac0c5acb83c730ce966f89f08d166bf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61f3cfbfaf22a0b856a99b36e1c2da5a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a61f3cfbfaf22a0b856a99b36e1c2da5a">myHandleUpdateOldCB</a></td></tr>
<tr class="separator:a61f3cfbfaf22a0b856a99b36e1c2da5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33363c3932e8b933735e6bdc6f7df51b"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a33363c3932e8b933735e6bdc6f7df51b">myHandleUpdateStringsCB</a></td></tr>
<tr class="separator:a33363c3932e8b933735e6bdc6f7df51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bb5c4a7ca45b377f03801bde5e3e4a4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a5bb5c4a7ca45b377f03801bde5e3e4a4">myMode</a></td></tr>
<tr class="separator:a5bb5c4a7ca45b377f03801bde5e3e4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3994c4bf074204addd24f34cf59d52ab"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html">ArCallbackList1</a>&lt; const char * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a></td></tr>
<tr class="separator:a3994c4bf074204addd24f34cf59d52ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae96a7b3105e1750123fe53f0df8f1a3d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ae96a7b3105e1750123fe53f0df8f1a3d">myMutex</a></td></tr>
<tr class="separator:ae96a7b3105e1750123fe53f0df8f1a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad72c512a9e4a8e0536f1bde845bd4c80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#ad72c512a9e4a8e0536f1bde845bd4c80">myRequestFreq</a></td></tr>
<tr class="separator:ad72c512a9e4a8e0536f1bde845bd4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9996de92f3853006b4d0657299bdb78"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#aa9996de92f3853006b4d0657299bdb78">myStatus</a></td></tr>
<tr class="separator:aa9996de92f3853006b4d0657299bdb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b552d71e180635db11f9968ec89ae31"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList2.html">ArCallbackList2</a>&lt; const char *, const char * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a></td></tr>
<tr class="separator:a8b552d71e180635db11f9968ec89ae31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2af775ecf21b6395953948933e93fc85"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html">ArCallbackList1</a>&lt; <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a></td></tr>
<tr class="separator:a2af775ecf21b6395953948933e93fc85"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Receives robot "update" responses from server and stores them. </p>
<p>After creating this object, call <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48" title="Request updates at the given rate. ">requestUpdates()</a> to begin receiving updates from the server. You can use the accessors for robot data to get copies of the most recently received data. Use <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a> and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339" title="Unlock mutex used to protect robot data, status and mode, which was locked with lock(). ">unlock()</a> before and after using these accessors. You can also register a callback function which is called as soon as robot data is received, or whenever the server's mode or status strings change. These callbacks will be called from the ArNetworking client thread (managed by <a class="el" href="classArClientBase.html" title="The base client class. ">ArClientBase</a>), so these callbacks must not lock any mutex used by that thread, and they must return quickly to avoid stalling/blocking the ArNetworking client thread. To avoid blocking the ArNetworking thread, monitor the state of <a class="el" href="classArClientHandlerRobotUpdate.html" title="Receives robot &quot;update&quot; responses from server and stores them. ">ArClientHandlerRobotUpdate</a> from your programs main thread or from another monitor thread, or if using ARNL, use RemoteArnlTask.</p>
<p>If the server supports separate "updateNumbers" and "updateStrings" requests, then <a class="el" href="classArClientHandlerRobotUpdate.html" title="Receives robot &quot;update&quot; responses from server and stores them. ">ArClientHandlerRobotUpdate</a> uses these requests when <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48" title="Request updates at the given rate. ">requestUpdates()</a> is called. Otherwise, it uses the older combined "update" request. (In either case, status and mode callbacks are only called if status/mode strings also change value.)</p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#_a16">robotUpdateExample.cpp</a>.</dd>
</dl></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a30eeb57403200c9f077a72f266947c88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArClientHandlerRobotUpdate::ArClientHandlerRobotUpdate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArClientBase.html">ArClientBase</a> *&#160;</td>
          <td class="paramname"><em>client</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>client Pointer to an <a class="el" href="classArClientBase.html" title="The base client class. ">ArClientBase</a> object, which will be used to request and receive 'updateStrings' and 'updateNumbers'; if these requests are unavailable, then the older 'update' request is used instead. </li>
</ul>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#ac0c5acb83c730ce966f89f08d166bf57">myHandleUpdateNumbersCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a61f3cfbfaf22a0b856a99b36e1c2da5a">myHandleUpdateOldCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a33363c3932e8b933735e6bdc6f7df51b">myHandleUpdateStringsCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#a036816043aa91332e56f2fc65ff17c04">ArGenericCallbackList&lt; ArFunctor2&lt; P1, P2 &gt; * &gt;::setName()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#a036816043aa91332e56f2fc65ff17c04">ArGenericCallbackList&lt; GenericFunctor &gt;::setName()</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor.html#acbc4f69001bac535e6507b4ca696c7d7">ArFunctor::setName()</a>.</p>

<p>Referenced by <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a52c31a22fdc9bb410934a9dcb327d866">ArClientHandlerRobotUpdate::RobotData::RobotData()</a>.</p>

</div>
</div>
<a class="anchor" id="a457ce90ec73a812f114f207719e50c07"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArClientHandlerRobotUpdate::~ArClientHandlerRobotUpdate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates()</a>.</p>

<p>Referenced by <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a52c31a22fdc9bb410934a9dcb327d866">ArClientHandlerRobotUpdate::RobotData::RobotData()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a5bf1111698c6b3888a94ea903163bef0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::addModeChangedCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a callback function which is invoked if a new, different status string is received from the server. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#abba0eadb150d38831460a8ec536b5284">ArGenericCallbackList&lt; GenericFunctor &gt;::addCallback()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a>.</p>

</div>
</div>
<a class="anchor" id="a3f058fc89de776228734b773d4f04bd4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::addStatusChangedCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor2.html">ArFunctor2</a>&lt; const char *, const char * &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a callback function which is invoked if a new, different status string is received from the server. </p>
<p>The callback is passed the mode and the status. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#abba0eadb150d38831460a8ec536b5284">ArGenericCallbackList&lt; ArFunctor2&lt; P1, P2 &gt; * &gt;::addCallback()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a>.</p>

</div>
</div>
<a class="anchor" id="a71c1138b62468ada65ab9b966a6cdba9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::addUpdateCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a callback function which is called with robot data received in every update from the server. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> </dd></dl>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a>.</p>

</div>
</div>
<a class="anchor" id="a20403933a7cde91876995b7737feeaf3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> ArClientHandlerRobotUpdate::getData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get a copy of robot position, status, etc. </p>
<p>which was most recently received from the server. </p>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>.</p>

</div>
</div>
<a class="anchor" id="abcdee791aeed3e74ff88bbca5a1cb495"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getLatVel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a26">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a29f099e4efb19dc5b1dd860743fac7d3">ArClientHandlerRobotUpdate::RobotData::latVel</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ab5a2424b2d503498d15181ec894a6837"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* ArClientHandlerRobotUpdate::getMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get pointer to mode string most recently received from server. </p>
<p>Use <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a> and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339" title="Unlock mutex used to protect robot data, status and mode, which was locked with lock(). ">unlock()</a> to protect from changes by other threads; you must copy this string if you wish to store it. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a20">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a5bb5c4a7ca45b377f03801bde5e3e4a4">myMode</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae531c4a228baa213ca99eb7532d96102">parseData()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="abffb67d38870da2cb80643d33da5454e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html">ArPose</a> ArClientHandlerRobotUpdate::getPose </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a75022fca1e4a823f5262504996a9212f">ArClientHandlerRobotUpdate::RobotData::pose</a>.</p>

</div>
</div>
<a class="anchor" id="a13a63841f9e9188e2ab1bf6fe0ed5a3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getRotVel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a27">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a453a3a9492b288d81b4379e578f0b27d">ArClientHandlerRobotUpdate::RobotData::rotVel</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a6316887244cfa172f21c499bdc96f2a5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getStateOfCharge </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a76330c5621dd101d79f0480e7d3702b8">ArClientHandlerRobotUpdate::RobotData::stateOfCharge</a>.</p>

</div>
</div>
<a class="anchor" id="a7c2641bf77077aceb4e60988b41b4653"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* ArClientHandlerRobotUpdate::getStatus </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get pointer to status string most recently received from server. </p>
<p>Use <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a> and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339" title="Unlock mutex used to protect robot data, status and mode, which was locked with lock(). ">unlock()</a> to protect from changes by other threads; you must copy this string if you wish to store it. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a21">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#aa9996de92f3853006b4d0657299bdb78">myStatus</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ad725f0742412edf8bfd8878ac97693bd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getTemperature </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#af29419008c30f9c0357791ef670771ec">ArClientHandlerRobotUpdate::RobotData::temperature</a>.</p>

</div>
</div>
<a class="anchor" id="af4a9df940976c360a684f48b613b7d93"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getTh </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a24">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#a2a1e5ef4f2a111b36287ff45cf9895b0">ArPose::getTh()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a75022fca1e4a823f5262504996a9212f">ArClientHandlerRobotUpdate::RobotData::pose</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e1e34e06e0daad656186d24081ac05b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getVel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a25">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a343e254c53003bdf3dd3f07a79711ebe">ArClientHandlerRobotUpdate::RobotData::vel</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a42a17bf8772a89f2a2c3f64ec823e927"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getVoltage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a28">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a6c7fbd6c5b50f10aa96e02666af3f02c">ArClientHandlerRobotUpdate::RobotData::voltage</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="aa8bddfe447a9e409085a6f679d7e961a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getX </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a22">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#afd85bde3b0320d19d108b172c3f332b1">ArPose::getX()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a75022fca1e4a823f5262504996a9212f">ArClientHandlerRobotUpdate::RobotData::pose</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a45972dbed0a0a76d41c65ec3ed8174ec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArClientHandlerRobotUpdate::getY </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a23">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#a563e9580f307fe832a7269f72bfda8fb">ArPose::getY()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a75022fca1e4a823f5262504996a9212f">ArClientHandlerRobotUpdate::RobotData::pose</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ab65a806c7b795a757b4a52023ea6a073"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::handleUpdateNumbers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>pkt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="clientStringInfoExample_8cpp.html#aa145b758b8385fd760f174780ccc5c69">data</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae531c4a228baa213ca99eb7532d96102">parseData()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ad7982c185979be0859838967214c580a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::handleUpdateOld </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>pkt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a8f1536daa451024715fe82cec495e826">ArBasePacket::bufToStr()</a>, <a class="el" href="clientStringInfoExample_8cpp.html#aa145b758b8385fd760f174780ccc5c69">data</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html#af20685d52e0bc6517e857638e5fb82a4">ArCallbackList1&lt; P1 &gt;::invoke()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a5bb5c4a7ca45b377f03801bde5e3e4a4">myMode</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#aa9996de92f3853006b4d0657299bdb78">myStatus</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae531c4a228baa213ca99eb7532d96102">parseData()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>.</p>

</div>
</div>
<a class="anchor" id="a3c0c5b156184224b7fb061d2d0a87750"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::handleUpdateStrings </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>pkt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a8f1536daa451024715fe82cec495e826">ArBasePacket::bufToStr()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html#af20685d52e0bc6517e857638e5fb82a4">ArCallbackList1&lt; P1 &gt;::invoke()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a5bb5c4a7ca45b377f03801bde5e3e4a4">myMode</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#aa9996de92f3853006b4d0657299bdb78">myStatus</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>.</p>

</div>
</div>
<a class="anchor" id="a47609e30e0438eaf17f07e5ffac9d732"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientHandlerRobotUpdate::haveStateOfCharge </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Whether battery status was provided as state of charge or not. </p>
<p>If true, <a class="el" href="classArClientHandlerRobotUpdate.html#a6316887244cfa172f21c499bdc96f2a5">getStateOfCharge()</a> provides a valid state of charge percentage value. If false, <a class="el" href="classArClientHandlerRobotUpdate.html#a6316887244cfa172f21c499bdc96f2a5">getStateOfCharge()</a> should not be used. </p>

<p>References <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#aacf16af23d9c6ce24c7821675bf0e144">ArClientHandlerRobotUpdate::RobotData::haveStateOfCharge</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>.</p>

</div>
</div>
<a class="anchor" id="ae8be85a05eccb0749500b437179bf28d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientHandlerRobotUpdate::haveVoltage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Whether battery status was provided as voltage or not. </p>
<p>If true, <a class="el" href="classArClientHandlerRobotUpdate.html#a42a17bf8772a89f2a2c3f64ec823e927">getVoltage()</a> provides a valid voltage value. If false, <a class="el" href="classArClientHandlerRobotUpdate.html#a42a17bf8772a89f2a2c3f64ec823e927">getVoltage()</a> should not be used. </p>

<p>References <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a5f4dce429d08ec51d47d25271ecd8ca5">ArClientHandlerRobotUpdate::RobotData::haveVoltage</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>.</p>

</div>
</div>
<a class="anchor" id="a7a7cf7df29cbfe92c0e5e590705f4e68"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::lock </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Lock mutex used to protect robot data, status and mode while new data is stored from an update from the server, in the ArNetwork client thread. </p>
<p>Call <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a> before accessing data using <a class="el" href="classArClientHandlerRobotUpdate.html#a20403933a7cde91876995b7737feeaf3" title="Get a copy of robot position, status, etc. ">getData()</a> or other accessor functions below, and call <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339" title="Unlock mutex used to protect robot data, status and mode, which was locked with lock(). ">unlock()</a> when done. Hold the lock for as short a time as possible to avoid stalling the ArNetworking thread. You can copy data returned by <a class="el" href="classArClientHandlerRobotUpdate.html#a20403933a7cde91876995b7737feeaf3" title="Get a copy of robot position, status, etc. ">getData()</a> to a new <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> object, then unlock. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a19">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ae96a7b3105e1750123fe53f0df8f1a3d">myMutex</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="ae531c4a228baa213ca99eb7532d96102"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::parseData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>pkt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a3006b1fbf239cea0013d0a9e0c0c1baf">ArBasePacket::bufToByte()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ab300d387c442be9ab025e2c089bbd620">ArBasePacket::bufToByte2()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a80571dd0c49cfb0717b1fc1e81176672">ArBasePacket::bufToByte4()</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#aecf54125671599e6279c47fc674943f6">ArClientHandlerRobotUpdate::RobotData::haveTemperature</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a5f4dce429d08ec51d47d25271ecd8ca5">ArClientHandlerRobotUpdate::RobotData::haveVoltage</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a29f099e4efb19dc5b1dd860743fac7d3">ArClientHandlerRobotUpdate::RobotData::latVel</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a26449de81d04d0771d987e34dc368221">myData</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a75022fca1e4a823f5262504996a9212f">ArClientHandlerRobotUpdate::RobotData::pose</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a453a3a9492b288d81b4379e578f0b27d">ArClientHandlerRobotUpdate::RobotData::rotVel</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#af41638451fdd15d53a3f3fc2fcda631e">ArPose::setTh()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#a4abf2da7a65b43472c42cf5e93ed55d2">ArPose::setX()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArPose.html#acceb46105151ec0c6a0cdb826adfe056">ArPose::setY()</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#af29419008c30f9c0357791ef670771ec">ArClientHandlerRobotUpdate::RobotData::temperature</a>, <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a343e254c53003bdf3dd3f07a79711ebe">ArClientHandlerRobotUpdate::RobotData::vel</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a6c7fbd6c5b50f10aa96e02666af3f02c">ArClientHandlerRobotUpdate::RobotData::voltage</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>.</p>

</div>
</div>
<a class="anchor" id="afaeffce973daa342519c3e1ba24a3497"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::remModeChangedCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove status-changed callback function. </p>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a3994c4bf074204addd24f34cf59d52ab">myModeChangedCBList</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#adeaa9b5526e59e3f732a6585f70e5379">ArGenericCallbackList&lt; GenericFunctor &gt;::remCallback()</a>.</p>

</div>
</div>
<a class="anchor" id="abaeefbbc9c5d045d071a987a39481e0a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::remStatusChangedCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor2.html">ArFunctor2</a>&lt; const char *, const char * &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove status-changed callback function. </p>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a8b552d71e180635db11f9968ec89ae31">myStatusChangedCBList</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArGenericCallbackList.html#adeaa9b5526e59e3f732a6585f70e5379">ArGenericCallbackList&lt; ArFunctor2&lt; P1, P2 &gt; * &gt;::remCallback()</a>.</p>

</div>
</div>
<a class="anchor" id="aa87ed6e789dd012f5aeb8f042c48baf3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::remUpdateCB </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> &gt; *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove data update callback function. </p>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#a2af775ecf21b6395953948933e93fc85">myUpdateCBList</a>.</p>

</div>
</div>
<a class="anchor" id="a308497682f0b294307f76b3738509c48"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::requestUpdates </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>freq</em> = <code>100</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Request updates at the given rate. </p>
<ul>
<li>freq Rate (miliseconds) at which to request the server send updates. If not given, default is 100ms. </li>
</ul>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a17">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientBase.html#a57e195371c8ae810b4bbdd1020852aa5">ArClientBase::addHandler()</a>, <a class="el" href="classArClientBase.html#a873a731b968b4e3359c60d592122770b">ArClientBase::dataExists()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ac0c5acb83c730ce966f89f08d166bf57">myHandleUpdateNumbersCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a61f3cfbfaf22a0b856a99b36e1c2da5a">myHandleUpdateOldCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a33363c3932e8b933735e6bdc6f7df51b">myHandleUpdateStringsCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad72c512a9e4a8e0536f1bde845bd4c80">myRequestFreq</a>, <a class="el" href="classArClientBase.html#a0a36a40fe2598eb214368ae8c3a26ca1">ArClientBase::request()</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">ArLog::Verbose</a>.</p>

<p>Referenced by <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>, and <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a52c31a22fdc9bb410934a9dcb327d866">ArClientHandlerRobotUpdate::RobotData::RobotData()</a>.</p>

</div>
</div>
<a class="anchor" id="ad7d541b0fcc9ac7fe3bed90f240a0d5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::stopUpdates </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop receiving updates. </p>

<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ac0c5acb83c730ce966f89f08d166bf57">myHandleUpdateNumbersCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a61f3cfbfaf22a0b856a99b36e1c2da5a">myHandleUpdateOldCB</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a33363c3932e8b933735e6bdc6f7df51b">myHandleUpdateStringsCB</a>, <a class="el" href="classArClientBase.html#a904bea3bf052b9a13bba5d81e45f68f9">ArClientBase::remHandler()</a>, and <a class="el" href="classArClientBase.html#aee1400e28ba15f18c032ea7f3b414cfd">ArClientBase::requestStop()</a>.</p>

<p>Referenced by <a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html#a52c31a22fdc9bb410934a9dcb327d866">ArClientHandlerRobotUpdate::RobotData::RobotData()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a457ce90ec73a812f114f207719e50c07">~ArClientHandlerRobotUpdate()</a>.</p>

</div>
</div>
<a class="anchor" id="a2b2e2dbf3cd1fdc44cc93b4a37a1e339"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientHandlerRobotUpdate::unlock </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unlock mutex used to protect robot data, status and mode, which was locked with <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68" title="Lock mutex used to protect robot data, status and mode while new data is stored from an update from t...">lock()</a>. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="robotUpdateExample_8cpp-example.html#a29">robotUpdateExample.cpp</a>.</dd>
</dl>
<p>References <a class="el" href="classArClientHandlerRobotUpdate.html#ae96a7b3105e1750123fe53f0df8f1a3d">myMutex</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, <a class="el" href="clientStringInfoExample_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="ae861fa0542620624287b4c2323607a5e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientHandlerRobotUpdate::waitForMode </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArThread.html#a05333f5f05022f42ab46a6dd8a8f1958">ArThread::getRunningWithLock()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#gabfac503dbf12dac57c8dc133d0b034a1">ArTime::mSecSince()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a5bb5c4a7ca45b377f03801bde5e3e4a4">myMode</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad72c512a9e4a8e0536f1bde845bd4c80">myRequestFreq</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga4dfb878a3f9123b8dd96ae05b2fd94cb">ArUtil::sleep()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#a35643715dec6e4e781d6b14f9bb18dc6">ArUtil::strcmp()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>.</p>

</div>
</div>
<a class="anchor" id="a144ae2b9f9b25c861fc4f3d86d9a4934"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientHandlerRobotUpdate::waitForStatus </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArThread.html#a05333f5f05022f42ab46a6dd8a8f1958">ArThread::getRunningWithLock()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#gabfac503dbf12dac57c8dc133d0b034a1">ArTime::mSecSince()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#afeea412ae5be9e597dcb58138ca13069">myClient</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad72c512a9e4a8e0536f1bde845bd4c80">myRequestFreq</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#aa9996de92f3853006b4d0657299bdb78">myStatus</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga4dfb878a3f9123b8dd96ae05b2fd94cb">ArUtil::sleep()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#a35643715dec6e4e781d6b14f9bb18dc6">ArUtil::strcmp()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="afeea412ae5be9e597dcb58138ca13069"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArClientBase.html">ArClientBase</a>* ArClientHandlerRobotUpdate::myClient</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a457ce90ec73a812f114f207719e50c07">~ArClientHandlerRobotUpdate()</a>.</p>

</div>
</div>
<a class="anchor" id="a26449de81d04d0771d987e34dc368221"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a> ArClientHandlerRobotUpdate::myData</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a20403933a7cde91876995b7737feeaf3">getData()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#abcdee791aeed3e74ff88bbca5a1cb495">getLatVel()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#abffb67d38870da2cb80643d33da5454e">getPose()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a13a63841f9e9188e2ab1bf6fe0ed5a3c">getRotVel()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a6316887244cfa172f21c499bdc96f2a5">getStateOfCharge()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad725f0742412edf8bfd8878ac97693bd">getTemperature()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#af4a9df940976c360a684f48b613b7d93">getTh()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a5e1e34e06e0daad656186d24081ac05b">getVel()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a42a17bf8772a89f2a2c3f64ec823e927">getVoltage()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#aa8bddfe447a9e409085a6f679d7e961a">getX()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a45972dbed0a0a76d41c65ec3ed8174ec">getY()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a47609e30e0438eaf17f07e5ffac9d732">haveStateOfCharge()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae8be85a05eccb0749500b437179bf28d">haveVoltage()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ae531c4a228baa213ca99eb7532d96102">parseData()</a>.</p>

</div>
</div>
<a class="anchor" id="ac0c5acb83c730ce966f89f08d166bf57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt;<a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a>*&gt; ArClientHandlerRobotUpdate::myHandleUpdateNumbersCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates()</a>.</p>

</div>
</div>
<a class="anchor" id="a61f3cfbfaf22a0b856a99b36e1c2da5a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt;<a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a>*&gt; ArClientHandlerRobotUpdate::myHandleUpdateOldCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates()</a>.</p>

</div>
</div>
<a class="anchor" id="a33363c3932e8b933735e6bdc6f7df51b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt;<a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a>*&gt; ArClientHandlerRobotUpdate::myHandleUpdateStringsCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ad7d541b0fcc9ac7fe3bed90f240a0d5f">stopUpdates()</a>.</p>

</div>
</div>
<a class="anchor" id="a5bb5c4a7ca45b377f03801bde5e3e4a4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientHandlerRobotUpdate::myMode</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#ab5a2424b2d503498d15181ec894a6837">getMode()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>.</p>

</div>
</div>
<a class="anchor" id="a3994c4bf074204addd24f34cf59d52ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html">ArCallbackList1</a>&lt;const char*&gt; ArClientHandlerRobotUpdate::myModeChangedCBList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a5bf1111698c6b3888a94ea903163bef0">addModeChangedCB()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#afaeffce973daa342519c3e1ba24a3497">remModeChangedCB()</a>.</p>

</div>
</div>
<a class="anchor" id="ae96a7b3105e1750123fe53f0df8f1a3d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a> ArClientHandlerRobotUpdate::myMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a7a7cf7df29cbfe92c0e5e590705f4e68">lock()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a2b2e2dbf3cd1fdc44cc93b4a37a1e339">unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ad72c512a9e4a8e0536f1bde845bd4c80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArClientHandlerRobotUpdate::myRequestFreq</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a308497682f0b294307f76b3738509c48">requestUpdates()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ae861fa0542620624287b4c2323607a5e">waitForMode()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="aa9996de92f3853006b4d0657299bdb78"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientHandlerRobotUpdate::myStatus</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a7c2641bf77077aceb4e60988b41b4653">getStatus()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#a144ae2b9f9b25c861fc4f3d86d9a4934">waitForStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="a8b552d71e180635db11f9968ec89ae31"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList2.html">ArCallbackList2</a>&lt;const char*, const char*&gt; ArClientHandlerRobotUpdate::myStatusChangedCBList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a3f058fc89de776228734b773d4f04bd4">addStatusChangedCB()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a3c0c5b156184224b7fb061d2d0a87750">handleUpdateStrings()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#abaeefbbc9c5d045d071a987a39481e0a">remStatusChangedCB()</a>.</p>

</div>
</div>
<a class="anchor" id="a2af775ecf21b6395953948933e93fc85"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArCallbackList1.html">ArCallbackList1</a>&lt;<a class="el" href="structArClientHandlerRobotUpdate_1_1RobotData.html">RobotData</a>&gt; ArClientHandlerRobotUpdate::myUpdateCBList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientHandlerRobotUpdate.html#a71c1138b62468ada65ab9b966a6cdba9">addUpdateCB()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#a30eeb57403200c9f077a72f266947c88">ArClientHandlerRobotUpdate()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ab65a806c7b795a757b4a52023ea6a073">handleUpdateNumbers()</a>, <a class="el" href="classArClientHandlerRobotUpdate.html#ad7982c185979be0859838967214c580a">handleUpdateOld()</a>, and <a class="el" href="classArClientHandlerRobotUpdate.html#aa87ed6e789dd012f5aeb8f042c48baf3">remUpdateCB()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ArClientHandlerRobotUpdate_8h.html">ArClientHandlerRobotUpdate.h</a></li>
<li><a class="el" href="ArClientHandlerRobotUpdate_8cpp.html">ArClientHandlerRobotUpdate.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArClientHandlerRobotUpdate.html">ArClientHandlerRobotUpdate</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
